//
// Created by Administrator on 2023/10/6.
/*
 * https://www.luogu.com.cn/problem/B3869 通过
 * GESP 2023.9 四级真题
 * 3.1 编程题 1
试题编号：2023-09-23-04-C-01
试题名称：进制转换
时间限制：1.0 s
内存限制：128.0 MB
3.1.1 问题描述
N进制数指的是逢 N进一的计数制。例如，人们日常生活中大多使用十进制计数，而计算机底层则一般使用二进
制。除此之外，八进制和十六进制在一些场合也是常用的计数制（十六进制中，一般使用字母 A 至 F 表示十至十
五；本题中，十一进制到十五进制也是类似的）。
在本题中，我们将给出 N个不同进制的数。你需要分别把它们转换成十进制数。
3.1.2 提示
对于任意一个 L位K 进制数，假设其最右边的数位为第0 位，最左边的数位为第 L-1位，我们只需要将其第 i位
的数码乘以权值 K^i，再将每位的结果相加，即可得到原N 进制数对应的十进制数。下面是两个例子：
1. 八进制数 1362 对应的十进制数为 754  ；
2. 十六进制数 3F0 对应的十进制数为 1008。
3.1.3 输入描述
输入的第一行为一个十进制表示的整数N 。接下来 K行，每行一个整数 ，随后是一个空格，紧接着是一个 N进
制数，表示需要转换的数。保证所有N 进制数均由数字和大写字母组成，且不以 0 开头。保证 N进制数合法。
保证 N<=1000；保证2<=K<=16
保证所有N 进制数的位数不超过 9。
3.1.4 输出描述
输出N 行，每一个十进制数，表示对应K 进制数的十进制数值。
3.1.5 特别提醒
在常规程序中，输入、输出时提供提示是好习惯。但在本场考试中，由于系统限定，请不要在输入、输出中附带任
何提示信息。
3.1.6 样例输入 1
2
8 1362
16 3F0
3.1.7 样例输出 1
754
1008
3.1.8 样例输入 2
2
2 11011
10 123456789
3.1.9 样例输出 2
27
123456789
 * */
//

#include <iostream>
#include <cmath>

using namespace std;
// 计算a^n
long long pow_long(long long a,long long n)
{
    long long ret=1;
    while(n--)
    {
        ret*=a;
    }
    return ret;
}

int main()
{
    long long c,k;// c:行数k:进制数n:数字
    string n;
    cin>>c;
    while (c--)
    {
        cin>>k>>n;
//        if (k==10)
//        {
//            cout<<n<<endl;
//            continue;
//        }
        long long ret=0;
        for (int i = n.size()-1; i >= 0  ; --i)
        {
            int t = n[i]-'0';
            if(n[i]>='A' and n[i]<='Z')
                t=n[i]-'A'+10;
            long long p = (long long)pow_long(k,(n.size()-i-1));
            ret+=t*p;
        }
        cout<<ret<<endl;

    }
    return 0;
}